Video class
The USB class protocol for Video is defined for devices or functions embedded in composite devices that record or stream video data.
Overview
The emUSB-Host Video class enables communication with any device that complies with the USB Device Class Definition for Video Devices as specified by the USB Implementers Forum.
Key features
- Compatibility with USB Video V1.00 devices
- Ability to receive video from input devices (e.g. webcams)
- Control processing, selector and extension units
- Notifications about insertion and removal of video devices
- Support for common video formats (Uncompressed, MJPEG and H.264)
- Support for all resolutions and frame rates
- Small footprint
Requirements
Components required to use emUSB-Host Video:
- emUSB-Host Video
- emUSB-Host core
- emUSB-Host target driver
- Real-time operating system (embOS or other)
Example code available
Video Evaluation Package for Embedded Studio. This demo contains an application which can display the connected webcam's video stream on the display.
Application examples for emUSB-Host Video
Webcam
Tested devices
emUSB-Host Video provides an interface between a video streaming device and the receiving host. With the specific requirements of video, not all controllers can handle video support. Below are the host controllers SEGGER has tested and passed so far. Others can be tested upon request.
- Without restrictions: EHCI controllers such as included with Xilinx Zynq, NXP Kinetis HiSpeed, i.MX6, i.MX-RT
- With reduced resolution: STM32, LPC5xx
Tested webcams
The primary use case of the video class is to connect a webcam to an embedded system. We have tested a number of webcams so far (see list below). Other devices can be added upon request.
- Aukey PC-LM1E
- Hama 00053950 Spy Protect
- Conceptronic AMDIS03B
- Logitech C930e
- Logitech V-U0006
- Logitech V-U0011
- Logitech V-U0018
- Logitech V-U0031
- Microsoft Lifecam HD 3000
- Trust 16428
- Trust 17003-02
- Razer Kiyo Pro RZ19-0364
- Xiaomi Imilab CMSXJ22A